﻿using System;
using System.Collections.Generic;

using System.Text;

namespace System.Qizx.Xml
{
    /*******************************/
    /// <summary>
    /// This interface will manage the Content events of a XML document.
    /// </summary>
    public interface XmlSaxLexicalHandler
    {
        /// <summary>
        /// This method manage the notification when Characters elements were found.
        /// </summary>
        /// <param name="ch">The array with the characters found.</param>
        /// <param name="start">The index of the first position of the characters found.</param>
        /// <param name="length">Specify how many characters must be read from the array.</param>
        void comment(char[] ch, int start, int length);

        /// <summary>
        /// This method manage the notification when the end of a CDATA section were found.
        /// </summary>
        void endCDATA();

        /// <summary>
        /// This method manage the notification when the end of DTD declarations were found.
        /// </summary>
        void endDTD();

        /// <summary>
        /// This method report the end of an entity.
        /// </summary>
        /// <param name="name">The name of the entity that is ending.</param>
        void endEntity(string name);

        /// <summary>
        /// This method manage the notification when the start of a CDATA section were found.
        /// </summary>
        void startCDATA();

        /// <summary>
        /// This method manage the notification when the start of DTD declarations were found.
        /// </summary>
        /// <param name="name">The name of the DTD entity.</param>
        /// <param name="publicId">The public identifier.</param>
        /// <param name="systemId">The system identifier.</param>
        void startDTD(string name, string publicId, string systemId);

        /// <summary>
        /// This method report the start of an entity.
        /// </summary>
        /// <param name="name">The name of the entity that is ending.</param>
        void startEntity(string name);
    }
}
